eval :: ((a -> b), a) -> b